When we are animating the overlay, we don't want to be continually
redrawing the (obscured) window actors.
src/shell-global.c: Add 'window-group' property to expose the group
holding the window actors.
js/ui/overlay.js: Hide the window group while the overlay is up.
svn path=/trunk/; revision=39
window_index++;
}
+ // All the the actors in the window group are completely obscured,
+ // hiding the group holding them while the overlay is displayed greatly
+ // increases performance of the overlay especially when there are many
+ // windows visible.
+ //
+ // If we switched to displaying the actors in the overlay rather than
+ // clones of them, this would obviously no longer be necessary.
+ global.window_group.hide()
this._group.show();
}
},
hide : function() {
if (this.visible) {
+ let global = Shell.global_get();
+
this.visible = false;
+ global.window_group.show()
this._group.hide();
for (let i = 0; i < this._window_clones.length; i++) {
return NULL;
}
+ClutterActor *
+mutter_plugin_get_window_group (MutterPlugin *plugin)
+{
+ return NULL;
+}
+
Display *
meta_display_get_xdisplay (MetaDisplay *display)
{
PROP_OVERLAY_GROUP,
PROP_SCREEN_WIDTH,
PROP_SCREEN_HEIGHT,
- PROP_STAGE
+ PROP_STAGE,
+ PROP_WINDOW_GROUP
};
/* Signals */
case PROP_STAGE:
g_value_set_object (value, mutter_plugin_get_stage (global->plugin));
break;
+ case PROP_WINDOW_GROUP:
+ g_value_set_object (value, mutter_plugin_get_window_group (global->plugin));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
"Stage holding the desktop scene graph",
CLUTTER_TYPE_ACTOR,
G_PARAM_READABLE));
+ g_object_class_install_property (gobject_class,
+ PROP_WINDOW_GROUP,
+ g_param_spec_object ("window-group",
+ "Window Group",
+ "Actor holding window actors",
+ CLUTTER_TYPE_ACTOR,
+ G_PARAM_READABLE));
}
/**